iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
SideProject30

製作適用於網頁的台灣登山地圖系列 第 7

[Day7] 地理資料的寶庫-OpenStreetMap

  • 分享至 

  • xImage
  •  

banner
圖片來源 openmaptiles.org

前幾天提到了前端在顯示地圖時,幾乎都會用到的「圖磚」。
不過,不論是未渲染的「向量圖磚」或是已經是圖片的「點陣圖磚」,都僅僅是依照一定步驟所製作的流水線產品而已。
至於作為材料的原料,那就是用來描述現實世界的地理資料了。

全球性的地理資料而要花費大量的人力物力去搜集並數化,因此傳統上只能由政府或大型企業來維護。
但在2004年開始,OpenStreetMap(中文稱作開放街圖,以下簡稱 OSM)開始展露頭角。
它允許註冊的使用者自行編輯地理資料,並採用開放資料庫授權成為全球最為價值的公共財之一。
只要遵照標示規則就可以自行使用,儼然就是地圖版的維基百科!

因此除了 Google 等掌握大量私有資料的大型企業外,想要自行製作圖磚供前端的地圖使用,
OSM 就成為了開發者和業界的首選!
先不論裡面的資料長什麼模樣,
為了在登山地圖中使用這項資源,以下就來介紹這份公開的資料集如何取得。

了解 OSM 的性質

許多人對 OSM 的印象,肯定來自在許多網頁中見過的點陣圖磚:
osm tile

之前提過,通常可以用以下的圖磚 URL 取得,毋需註冊任何服務:

http://{a|b|c}.tile.openstreetmap.org/{z}/{x}/{y}.png

和 Google Map 一比,看起來色調較為樸素,而且細節的清晰度通常也不怎麼樣。
不過要注意的是:這份點陣圖磚來自開放街圖基金會提供的圖磚服務,使用的是被稱作 OSM Carto 的渲染樣式。

嚴格來說,它只是 OSM 這份資料集的加值產物,並不能代表 OSM。
資料集內所記載的各種物件內容才是重點!
講白一點,若有一天這個圖磚服務停止了,只要使用者還能自由取得資料集,OSM 也就還是 OSM,並不會減損它的任何價值。

既然 OSM 這份資料集涵蓋了全球的地理資料,那它有多大呢?
根據 OSM Wiki 頁面 的描述:截至2023年9月1日為止,純文字(XML)描述的檔案大小是1787.2 GB,而網路傳輸使用的 PBF 格式則為70.5GB。

要處理那麼龐大的檔案,一般的筆電或桌機可能稍嫌不夠用。
不過若只是針對台灣這一個小區域,那肯定是沒問題的!

取得 OSM 資料集

全球性的 OSM 資料集又被稱作 Planet.osm,官方使用 https://planet.openstreetmap.org/ 這個伺服器提供資料。但既然它有 70GB,那麼肯定是不可能經由瀏覽器的 HTTP 協定下載了。

BT 種子

一般用來提供下載的伺服器會提供 .torrent 的種子檔案,全球需要下載原始資料集的使用者就透過 P2P 的方式傳輸,很是合理!Planet.osm 的種子連結如下:

https://planet.openstreetmap.org/pbf/planet-latest.osm.pbf.torrent

切片服務

當然,需要取得 Planet.osm 的使用者只有極少數人,可能是企業、做服務的開發者或是研究單位。
一般來講,若我們只需要取得部分地區的資料集,則可以找其它有提供切片服務的鏡象站,使用者可以在相關的列表中自行搜尋適當的伺服器。

不過也可以直接使用更方便的第三方服務。Geofabrik 就為全球主要的國家或地區提供個別的網頁和相關下載資源。
例如在台灣的頁面中,可以見到 PBF、Shapefile ,以及用來描述形狀的 .poly 等格式:
https://ithelp.ithome.com.tw/upload/images/20230927/20162266E4WTdW9h19.png

我們需要取得的 PBF 格式位址是:http://download.geofabrik.de/asia/taiwan-latest.osm.pbf

更厲害的即時服務

傳統上,將全球性的資料依據地理位置進行切片是相當不容易的。
也因此,各個切片後的地區性資料集會和即時的資料庫有所落差。
舉例來說,上述的 Geofabrik 所做的台灣切片大約24小時更新一次。

但隨著技術的進步,也有新的第三方服務如 protomaps ,使用更加快速的 S2 Geometry 來儲存空間資訊,將切片服務做到了即時的程度!

下載頁面中,使用者可以自行劃訂區域,並直接取得所需要的 PBF 格式資料集:
protomaps download

小結

今天簡短的介紹的 OSM 的一些背景,並提供取得的方法。
它所包含的資料內容有哪些種類,又要如何解讀,則留待明天來細細討論!


上一篇
[Day6] 開源的向量圖磚-OpenMapTiles
下一篇
[Day8] OpenStreetMap 的資料格式
系列文
製作適用於網頁的台灣登山地圖25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言